The present invention relates in general to data processing systems, and in particular, to event triggering in simulations of multi-processor (MP) systems.
Multi-processor (MP) data processing systems necessarily include a plurality of processors coupled to one or more buses whereby the processors interact with other parts of the data processing system or among themselves. As a consequence, two or more devices may contend for a bus, or try to access the same location in a peripheral device, such as a memory or input/output (I/O) device. Such MP systems may be verified by simulations wherein simulated processors are xe2x80x9cassembledxe2x80x9d into the system, which is then simulated by running processor cycles.
This verification via simulation may require a large amount of development time. This is due to the relative slowness of the simulator, and the large number of cycles needed to fully test a complex data processing system. Because of these time constraints, simulation tools use event generators that directly trigger events, or system states, on the buses, rather than creating events through processor instruction streams. Moreover, the time of occurrence of instruction-stream-generated events cannot be exactly predicted, so contentions cannot be ensured.
However, because events are triggered directly, and not through processor instruction streams, the test case under simulation may never create scenarios that would cause the event generators (which may sometimes be referred to as xe2x80x9cirritatorsxe2x80x9d) to drive events, or may cause events to be random. Thus, there is a need in the art for apparatus and methods which integrate event generation into the test case generator being used to generate the test case.
Additionally, coverage tools may be used during simulation to track system states. If, a system state has already occurred in the simulation, then it is not necessary to repeat that state. Conversely, if a system state hasn""t been reached, then, to ensure completeness, a coverage tool is used to track xe2x80x9cuncoveredxe2x80x9d events during a simulation run. Uncovered events are events which have not been observed in the simulation but are otherwise important in the verification of the system under simulation. There is a need in the art for a mechanism by which a coverage tool can communicate with the irritators in order to cause events that are otherwise uncovered to occur.
The aforementioned needs are addressed by the present invention. Accordingly, there is provided, in a first form, a method of simulation event triggering. The method includes the step of providing a predetermined set of data structures, wherein a first subset of the data structures define precursor states in a simulation model, a second subset define a plurality of effects, and a third subset define rules mapping precursor states to one or more corresponding effects. Driving at least one of the plurality of effects, wherein the effect is operable for in response to a simulation event corresponding to at least one of the precursor events, is also a step of the method.
There is also provided, in a second form, a computer program product adaptable for storage on storage media, the program product operable for simulation event triggering. The program product constitutes programming for providing a predetermined set of data structures, wherein a first subset of the data structures define precursor states in a simulation model, a second subset define a plurality of effects, and a third subset define rules mapping precursor states to one or more corresponding effects, and programming for driving at least one of the plurality of effects, wherein the effect is operable for in response to a simulation event corresponding to at least one of the precursor events.
Additionally, there is provided, in a third form, a data processing system for simulation event triggering which contains circuitry operable for providing a predetermined set of data structures, wherein a first subset of the data structures define precursor states in a simulation model, a second subset define a plurality of effects, and a third subset define rules mapping precursor states to one or more corresponding effects. The data processing system also constitutes circuitry operable for driving at least one of the plurality of effects, wherein the effect is operable for in response to a simulation event corresponding to at least one of the precursor events.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.